package com.hk.hkvedio.controller;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.hk.hkvedio.model.Vedio;
import com.hk.hkvedio.service.VedioService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;


@RestController
@RequestMapping(value = "hk")
@Slf4j
public class VideoController {

    @Autowired
    private VedioService vedioService;

    @GetMapping(value = "getList")
    public Object getList() {
        return vedioService.list(new LambdaQueryWrapper<Vedio>().eq(Vedio::getIsEnable, true));
    }


//    @Autowired
//    private IHkVideoService hkVideoService;
//
//    private NativeLong nlUserID;
//
//    private HCNetSDK hkSdk;
//
//
//    //回调信息
//    private HkVideoMonitor hkVideoMonitor;
//    //监听
//    private NativeLong lListenHandle;
//    //布防
//    private NativeLong alarmChan;

    /**
     * 初始化和注册
     */
//    public void init() {
//        if (Objects.equals(hkSdk, null)) {
//            hkSdk = hkVideoService.net_dvr_init();
//        }
//        if (Objects.equals(nlUserID, null)) {
//            nlUserID = hkVideoService.net_dvr_login_v40();
//        }
//    }


//    /**
//     * 启动监听
//     *
//     * @return
//     */
//    @GetMapping(value = "startMonitor")
//    public String startMonitor() {
//        //init();
//        System.out.println("监听启动");
//        if (hkVideoMonitor == null) {
//            hkVideoMonitor = new HkVideoMonitor();
//        }
//        Pointer pUser = null;
//        //设置警报信息回调
//        boolean b = hkSdk.NET_DVR_SetDVRMessageCallBack_V30(hkVideoMonitor, pUser);
//        System.out.println("错误码：" + hkSdk.NET_DVR_GetLastError());
//        if (!b) {
//            System.out.println("设置回调函数失败!");
//            return "设置回调函数失败";
//        }
//        System.out.println("设置回调函数成功!");
//        //布防
//        alarmChan = hkSdk.NET_DVR_SetupAlarmChan_V30(nlUserID);
//        if (alarmChan.longValue() == -1) {
//            System.out.println("错误码：" + hkSdk.NET_DVR_GetLastError());
//            System.out.println("布防失败");
//        }
//        System.out.println("布防成功");
//
//        //本地IP地址置为null时自动获取本地IP
//        lListenHandle = hkSdk.NET_DVR_StartListen_V30(null, (short) 9211, hkVideoMonitor, null);
//        if (lListenHandle.intValue() == -1) {
//            System.out.println("错误码：" + hkSdk.NET_DVR_GetLastError());
//            System.out.println("开始监听失败");
//            return "开始监听失败";
//        }
//        System.out.println("开始监听。。。。");
//        return "开始监听。。。。";
//    }
//
//    /**
//     * 停止监听
//     *
//     * @return
//     */
//    @GetMapping(value = "stopMonitor")
//    public String stopMonitor() {
//        if (Objects.equals(lListenHandle, null)) {
//            return "未开启监听";
//        }
//        //停止监听
//        if (lListenHandle.intValue() != -1) {
//            if (!hkSdk.NET_DVR_StopListen_V30(lListenHandle)) {
//                System.out.println("停止监听失败");
//                lListenHandle = new NativeLong(-1);
//            } else {
//                System.out.println("停止监听成功");
//                lListenHandle = new NativeLong(-1);
//            }
//        }
//        if (!Objects.equals(alarmChan, null)) {
//            boolean b = hkSdk.NET_DVR_CloseAlarmChan_V30(alarmChan);
//            if (!b) {
//                System.out.println("停止布防失败");
//                alarmChan = new NativeLong(-1);
//            } else {
//                System.out.println("停止布防成功");
//                alarmChan = new NativeLong(-1);
//            }
//        }
//        return "停止监听";
//    }


}
